#include <functional>
#include <iostream>
#include <vector>
#include <set>
#include <queue>
using namespace std;

// 题目链接：https://ac.nowcoder.com/acm/contest/11211/F

// 利用 multiset：全部案例超时
class Less_set
{
public:
    bool operator()(const pair<int, int>& a, 
                    const pair<int, int>& b) const
    {
        return (a.second - a.first) <= (b.second - b.first);
    }
};

int main()
{
    int n = 0, x = 0;
    cin >> n >> x;
    vector<int> v(n, 0);
    for(int i = 0; i < n; i++)
    {
        cin >> v[i];
    }

    // first:区间内值加和,pair存储区间 second:凑数
    multiset<pair<int, int>, Less_set> mt_set;

    for(int i = 0; i < n; i++)
    {
        int sum = 0;
        for(int j = i; j < n; j++)
        {
            sum += v[j];
            if(sum >= x)
            {
                mt_set.insert( pair<int, int>(i, j) );
                break;
            }
        }
    }

    cout << mt_set.begin()->first << " " 
        << mt_set.begin()->second << endl;
}


// 利用 priority_queue：超时（通过率20%）
class Greater_pq
{
public:
    bool operator()(const pair<int, int>& a,
                    const pair<int, int>& b) const
    {
        return (a.second - a.first) > (b.second - b.first) ||
            (((a.second - a.first) == (b.second - b.first)) &&
            a.second > b.second);
    }
};

int main()
{
    int n = 0, x = 0;
    cin >> n >> x;
    vector<size_t> v(n, 0);
    for(int i = 0; i < n; i++)
    {
        cin >> v[i];
    }

    // pair存储区间
    priority_queue<pair<int, int>,
                    vector<pair<int, int>>, Greater_pq> pq;

    for(int i = 0; i < n; i++)
    {
        int sum = 0;
        for(int j = i; j < n; j++)
        {
            sum += v[j];
            if(sum >= x)
            {

                pq.push( pair<int, int>(i, j));
                break;
            }
        }
    }

    cout << pq.top().first +1 << " "
        << pq.top().second +1 << endl;
}


// 利用 同向双指针/滑动窗口 实现（通过率100%）
int main() 
{
	int N = 10000000;
	int n, x;
	int retLen = N;
    cin >> n >> x;
    vector<int> v(n + 1, 0);
    for (int i = 1; i < n; i++)     // 注意题目的输出示例下标从1开始
    {
        cin >> v[i];
    }

    int retLeft = 0, retRight = 0;      // 用来记录最终的最小区间左右两端点
    int l = 1, r = 1;       // 同向双指针
    int sum = 0;
    while (r < n) 
    {
        // 进窗口
        sum += v[r];

        while (sum >= x)    // 判断出窗口条件
        {
            if (r - l + 1 < retLen)     // 出现满足出窗口条件的更小区间，更新窗口长度
            {
                retLeft = l;
                retRight = r;
                retLen = r - l + 1;
            }
            // 出窗口
            sum -= v[l++];
        }
        r++;
    }
    cout << retLeft << " " << retRight << endl;
    return 0;
}